package com.demo.hive;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class HiveJdbcTest {

	private static String driverName = "org.apache.hive.jdbc.HiveDriver";

	public static void main(String[] args)throws SQLException {
		try {
		    Class.forName(driverName);
		} catch (ClassNotFoundException e) {
		    e.printStackTrace();
		    System.exit(1);
		}
		
		Connection con = DriverManager.getConnection(
		                    "jdbc:hive2://192.168.126.131:10000/default", "lg", "lg-password");
		Statement stmt = con.createStatement();
		String tableName = "jdbcHive";
		stmt.execute("drop table if exists " + tableName);
		stmt.execute("create table " + tableName + 
		                              " (key int, value string)");
		System.out.println("Create table success!");
		// show tables
		String sql = "show tables '" + tableName + "'";
		System.out.println("Running: " + sql);
		ResultSet res = stmt.executeQuery(sql);
		if (res.next()) {
		    System.out.println(res.getString(1));
		}
		
		// describe table
		sql = "describe " + tableName;
		System.out.println("Running: " + sql);
		res = stmt.executeQuery(sql);
		while (res.next()) {
		    System.out.println(res.getString(1) + "\t" + res.getString(2));
		}
		
		sql = "select * from " + tableName;
		res = stmt.executeQuery(sql);
		while (res.next()) {
		    System.out.println(String.valueOf(res.getInt(1)) + "\t" + res.getString(2));
		}
		
		sql = "select count(1) from " + tableName;
		System.out.println("Running: " + sql);
		res = stmt.executeQuery(sql);
		while (res.next()) {
		    System.out.println(res.getString(1));
		}
		System.out.println("over !");
	}
}
